Option Explicit

' ======================================================================
' Descriptor
' ISqlFormatterSqlSubEnvAnalyzer 各类型sql的组成部分的通用解析流程的辅助接口
' ======================================================================

' 获取当前解析结果的类型
Public Function getType() As SqlTokenType

' 解析开始部分的作用域 -- 主要负责各类型的sql起始关键字开始的部分的解析
'
' @param tokenScanner 扫描器
' @return 开始部分的作用域
Public Function parseStartCompositionEnv(ByRef tokenScanner As ObjArrayRefScanner) As ISqlFormatterElem

' 解析、生成各个组成部分的作用域
'
' @param tokenScanner 扫描器
' @param leftParenthesisStack 左括号栈 (ObjStack<SqlToken>)
' @param tokenType 起始token的类型
' @return 各组部分的作用域
Public Function parseSubCompositionEnv(ByRef tokenScanner As ObjArrayRefScanner, ByRef leftParenthesisStack As ObjStack, ByRef tokenType As SqlTokenType) As ISqlFormatterElem